package com.platform.usercenter.teamfc.service;

import com.platform.common.core.domain.entity.SysUser;
import com.platform.usercenter.domain.CalLeaderPlan;
import com.platform.usercenter.domain.SysMenu;
import com.platform.usercenter.domain.SysOrganizationDept;
import com.platform.usercenter.domain.dto.CalLeaderPlanDTO;
import com.platform.usercenter.domain.vo.SysOrgDeptUserVO;
import com.platform.usercenter.domain.vo.SysUserVO;
import com.platform.usercenter.teamfc.domain.dto.MenuDTO;
import com.platform.usercenter.teamfc.domain.vo.SysDeptTreeVO;

import java.util.List;

public interface PlatUserCenterFcService {

    /**
     * 根据用户查询系统菜单列表
     *
     * @param menu 菜单信息
     * @param userId 用户ID
     * @return 菜单列表
     */
    public List<SysMenu> selectMenuList(MenuDTO menu, Long userId, Long orgId);

    /**
     * 查询全部用户id
     * @param orgId
     * @return
     */
    List<SysUser> queryUserIdList(Long orgId);

    //根据部门id查询所有用户
    List< SysUserVO >  getUserInfoById( SysUserVO user);

    /**
     * 根据部门名称 查询全部用户id
     * @param deptName
     * @return
     */
    List<SysUser> queryUserListByDeptName(String  deptName);

    /**
     * 根据用户类型查询全部用户id
     * @param userType
     * @return
     */
    List<SysUser> queryUserIdListByUserType(String userType);

    /**
     * 查询部门树状结构
     * @param deptId
     * @return
     */
    List<SysDeptTreeVO>  queryDeptTree(Long deptId);

    SysDeptTreeVO queryDeptTreeData(Long deptId);

    /**
     * 查询领导排班计划
     * @param calLeaderPlan
     * @return
     */
    List<CalLeaderPlan> selectCalLeaderPlanList(CalLeaderPlanDTO calLeaderPlan);

    /**
     * 批量查询用户
     * @param userIds
     * @return
     */
    List<SysUser> getUserListInfo(Long[] userIds);



    public List<SysUser> selectDeptIdUsersWithKeyword(Long orgId,String keyword);

    public List< SysOrgDeptUserVO > queryUserListByPostIds( SysOrgDeptUserVO sysOrgDeptUserVO ) ;
}
